import Vue from 'vue';
import Router from 'vue-router';

// 引入多个动态路由模块
import approvalsRouter from './modules/approvals';
import departmentsRouter from './modules/departments';
import employeesRouter from './modules/employees';
import permissionRouter from './modules/permission';
import attendancesRouter from './modules/attendances';
import salarysRouter from './modules/salarys';
import settingRouter from './modules/setting';
import socialRouter from './modules/social';
import userRouter from './modules/user';

Vue.use(Router);

/* Layout */
import Layout from '@/layout';

// 定义静态路由
export const constantRoutes = [{
        path: '/login',
        component: () =>
            import ('@/views/login/index'),
        hidden: true

    },

    {
        path: '/404',
        component: () =>
            import ('@/views/404'),
        hidden: true
    },

    {
        path: '/',
        component: Layout,
        redirect: '/dashboard',
        children: [{
            path: 'dashboard',
            name: 'dashboard',
            component: () =>
                import ('@/views/dashboard/index'),
            meta: { title: '首页', icon: 'dashboard' }
        }]
    },
    // 新增的  员工管理中  导入excel表格的 路由
    {
        path: '/import',
        component: Layout,
        hidden: true,
        children: [{
            path: '',
            component: () =>
                import ('../views/import')
        }]
    },
    userRouter
];

// 定义动态路由
export const asyncRoutes = [
    approvalsRouter,
    departmentsRouter,
    employeesRouter,
    permissionRouter,
    attendancesRouter,
    salarysRouter,
    settingRouter,
    socialRouter
];

// 创建路由实例
const createRouter = () =>
    new Router({
        mode: 'history', // 切换路由模式 hash/history
        base: 'hr/', // 配置默认的基础地址（前缀地址）
        scrollBehavior: () => ({ y: 0 }),
        routes: [...constantRoutes]
    });

const router = createRouter();

// 重置路由
export function resetRouter() {
    const newRouter = createRouter();
    router.matcher = newRouter.matcher; // reset router
}

export default router;